//===============================
//  功能 ：备注 
//  作者 ：上中野辅亚瑟王 
//  创建时间 ：2023-08-02  11-21-35 
//  Unity版本  ：2019.4.35f1 
//  变更时间 :  2023-08-02  11-21-35 
//===============================





//using System;
//using UnityEngine;
//using ZS.U3D.BASE.Networking;

//public static class NetManager
//{
//    private static bool _isInitialize = false;
//    private static GameObject _driver = null;
//    public static GameObject Driver { get { return _driver; } }
//    private static MonoBehaviour _behaviour;

//    private static TCPClient client;


//    //是否启用心跳
//    public static bool isUsePing = true;
//    //心跳间隔时间
//    public static int pingInterval = 30;
//    //上一次发送PING的时间
//    private static float lastPingTime = 0;
//    //上一次收到PONG的时间
//    private static float lastPongTime = 0;

//    //发送PING协议
//    private static void PingUpdate()
//    {
//        //是否启用
//        if (!isUsePing)
//        {
//            return;
//        }

//        //MyDebug.Log(Time.time  +"   "  +  lastPingTime );
//        //发送PING
//        if (Time.time - lastPingTime > pingInterval)
//        {
//            HeartBeat.Ping msgPing = new HeartBeat.Ping();
//            //Send(msgPing);
//            SendPackage(msgPing.ToPackage());
//            lastPingTime = Time.time;
//            MyDebug.Log(lastPingTime);
//        }

//        //检测PONG时间
//        if (Time.time - lastPongTime > pingInterval * 4)
//        {
//            client.Dispose();
//        }
//    }

//    //监听PONG协议
//    private static void OnMsgPong(INetPackage package)
//    {
//        lastPongTime = Time.time;
//        MyDebug.Log("服务器的心跳回应"+ lastPongTime);
//    }


//    /// <summary>
//    /// 初始化
//    /// </summary>
//    public static void Initialize()
//    {
//        if (_isInitialize)
//        {
//            MyDebug.LogWarning($"{nameof(NetManager)} is Initialized ");
//            return;
//        }
//        {
//            _isInitialize = true;
//            _driver = new GameObject($"[{nameof(NetManager)}]");
//            _behaviour = _driver.AddComponent<NetDriver>();
//            UnityEngine.Object.DontDestroyOnLoad(_driver);
//            client = new TCPClient();
//            client.Connect("127.0.0.1", 8888);
//            AddMsgListener(typeof(HeartBeat.Pong), OnMsgPong);
//            lastPingTime = Time.time;
//            MyDebug.Log($"{nameof(NetManager)} is initalize !");
//        }
//    }


//    public static void AddMsgListener(Type type, TCPClient.MsgListener listener) {
//        MyDebug.Log(type.Name);
//        client.AddMsgListener(type.Name,listener);
//    }

//    public static void AddMsgListener(string msgName,TCPClient.MsgListener listener) {
//        client.AddMsgListener(msgName,listener);
//    }

//    public static void RemoveMsgListener(string msgName, TCPClient.MsgListener listener)
//    {
//        client.RemoveMsgListener(msgName, listener);
//    }

//    public static void SendPackage(INetPackage package) {
//        client.SendPackage(package);
//    }

//    internal static void Update()
//    {
//        client.Update();
//        PingUpdate();
//    }


//    /// <summary>
//    /// 销毁单例系统
//    /// </summary>
//    public static void Destroy()
//    {
//        if (_isInitialize)
//        {
//            _isInitialize = false;
//            if (_driver != null)
//            {
//                UnityEngine.Object.Destroy(_driver);
//            }
//            client.Dispose();
//            MyDebug.Log($"{nameof(NetManager)} destroy !");
//        }
//    }

//}
